import { defineStore } from "pinia";
import { ref } from "vue";

// 定义管理员数据接口
export interface AdminItem {
  userName: string;
  [key: string]: any; // 允许其他属性
}

export const useAdminStore = defineStore("admin", () => {
  // 管理员列表数据
  const adminList = ref<AdminItem[]>([]);

  // 设置管理员列表
  const setAdminList = (list: any[]) => {
    // 确保数据格式正确
    adminList.value = list.map((item) => {
      // 如果是字符串，转换为对象
      if (typeof item === "string") {
        return { userName: item };
      }
      // 如果已经是对象且有userName属性，直接使用
      else if (item && typeof item === "object" && "userName" in item) {
        return item;
      }
      // 其他情况，尝试使用合适的属性作为userName
      else if (item && typeof item === "object") {
        return {
          ...item,
          userName: item.name || item.userName || item.username || "未知用户",
        };
      }
      // 兜底情况
      return { userName: "未知用户" };
    });
  };

  return {
    adminList,
    setAdminList,
  };
});
